import Vue from 'vue'
import VueRouter from 'vue-router'

// 引入路由组件
import login from '@/views/user/login.vue'
import home from '@/views/home/home.vue'
import movie from '@/views/movie/movie.vue'
import qa from '@/views/qa/qa.vue'
import user from '@/views/user/user.vue'
import layout from '@/views/layout.vue'
import notfound from '@/views/notfound/notfound.vue'
import edit from '@/views/user/edit.vue'
import article from '@/views/home/article.vue'
import search from '@/views/home/search.vue'
import searchResult from '@/views/home/searchResult.vue'
import student from '@/views/user/student.vue'

Vue.use(VueRouter)

const routes = [
  {
    name: 'login',
    path: '/login',
    component: login
  },
  {
    name: 'edit',
    path: '/edit',
    component: edit
  },
  {
    name: 'myArticle',
    path: '/article',
    component: article
  },
  {
    name: 'search',
    path: '/search',
    component: search
  },
  {
    name: 'searchResult',
    path: '/searchResult',
    component: searchResult
  },
  {
    name: 'student',
    path: '/student',
    component: student
  },
  {
    name: 'layout',
    path: '/',
    component: layout,
    children: [
      {
    name: 'home',
    path: '/home',
    component: home
  },
  {
    name: 'movie',
    path: '/movie',
    component: movie
  },
  {
    name: 'qa',
    path: '/qa',
    component: qa
  },
  {
    name: 'user',
    path: '/user',
    component: user,
    meta: {
      isLogin: true
    }
  },
  { 
    path: '/', redirect: '/home' 
  }
    ]
  },
  {
    name: 'notfound',
    path: '/notfound',
    component: notfound
  },
  { 
    // 输入错误网址跳转到404页面
    path: '*', redirect: '/notfound' 
  }
  
]

const router = new VueRouter({
  routes
})

// 导入token
import {getToken} from '@/utils/token.js'

// 导入弹框
import { Toast } from 'vant';

// 路由守卫
router.beforeEach((to, from, next) => {
  if ( to.meta.isLogin ) {
    if (getToken()) {
      next();
    } else {
      // 弹框
      Toast.fail('请先登录！');
      // 失败跳转到login
      next('/login')
    }
  } else {
    next()
  }
})

export default router
